home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1994 March / Internet Info CD-ROM (Walnut Creek) (March 1994).iso / answers / news / perl-faq / part1 < prev    next >
Text File  |  1993-10-01  |  37KB  |  829 lines

  1. Newsgroups: comp.lang.perl,news.answers
  2. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!spool.mu.edu!agate!boulder!wraeththu.cs.colorado.edu!tchrist
  3. From: Tom Christiansen <tchrist@cs.Colorado.EDU>
  4. Subject: Perl Frequently Asked Questions, part 1 of 4
  5. Message-ID: <CE9Bpt.24w@Colorado.EDU>
  6. Followup-To: comp.lang.perl
  7. Originator: tchrist@wraeththu.cs.colorado.edu
  8. Sender: news@Colorado.EDU (USENET News System)
  9. Organization: University of Colorado at Boulder
  10. Date: Sat, 2 Oct 1993 06:37:04 GMT
  11. Approved: news-answers-request@MIT.Edu
  12. Expires: Wed, 1 Dec 1993 12:00:00 GMT
  13. Lines: 813
  14. Xref: senator-bedfellow.mit.edu comp.lang.perl:20582 news.answers:13120
  15.  
  16. Archive-name: perl-faq/part1
  17. Version: $Id: perl-info1,v 1.1 93/10/02 00:27:05 tchrist Exp Locker: tchrist $
  18.  
  19. This posting contains answers to general information questions,
  20. mostly of a non-technical nature.  The following questions are 
  21. answered in this posting:
  22.  
  23. 1.1) What is Perl?
  24. 1.2) Is Perl hard to learn?
  25. 1.3) Should I program everything in Perl?
  26. 1.4) Where can I get Perl over the Internet?
  27. 1.5) Where can I get Perl via Email?
  28. 1.6) How can I get Perl via UUCP?
  29. 1.7) Where can I get more information on Perl?
  30. 1.8) Can people who aren't on USENET receive comp.lang.perl as a digest?
  31. 1.9) Are archives of comp.lang.perl available?
  32. 1.10) Is there a WAIS server for Perl?
  33. 1.11) Is there a Perl port to machine FOO?
  34. 1.12) How do I get Perl to compile on Solaris?
  35. 1.13) How do I get Perl to compile on a Next?
  36. 1.14) Where can I get (info|inter|ora|sql|syb)perl?
  37. 1.15) Where can I get an SNMP-aware Perl?
  38. 1.16) There's an a2p and an s2p; why isn't there a p2c (perl-to-C)?
  39. 1.17) Where can I get undump for my machine?
  40. 1.18) Where can I get a perl-mode for emacs?
  41. 1.19) How can I use Perl interactively?
  42. 1.20) Is there a Perl shell? 
  43.  
  44.  
  45. 1.1) What is Perl?
  46.  
  47.     A programming language, by Larry Wall <lwall@netlabs.com>.
  48.  
  49.     Here's the beginning of the description from the man page:
  50.  
  51.     Perl is an interpreted language optimized for scanning arbitrary text
  52.     files, extracting information from those text files, and printing reports
  53.     based on that information.  It's also a good language for many system
  54.     management tasks.  The language is intended to be practical (easy to use,
  55.     efficient, complete) rather than beautiful (tiny, elegant, minimal).  It
  56.     combines (in the author's opinion, anyway) some of the best features of C,
  57.     sed, awk, and sh, so people familiar with those languages should have
  58.     little difficulty with it.  (Language historians will also note some
  59.     vestiges of csh, Pascal, and even BASIC-PLUS.)  Expression syntax
  60.     corresponds quite closely to C expression syntax.  Unlike most Unix
  61.     utilities, Perl does not arbitrarily limit the size of your data--if
  62.     you've got the memory, Perl can slurp in your whole file as a single
  63.     string.  Recursion is of unlimited depth.  And the hash tables used by
  64.     associative arrays grow as necessary to prevent degraded performance.
  65.     Perl uses sophisticated pattern matching techniques to scan large amounts
  66.     of data very quickly.  Although optimized for scanning text, Perl can also
  67.     deal with binary data, and can make dbm files look like associative arrays
  68.     (where dbm is available).  Setuid Perl scripts are safer than C programs
  69.     through a dataflow tracing mechanism which prevents many stupid security
  70.     holes.  If you have a problem that would ordinarily use sed or awk or sh,
  71.     but it exceeds their capabilities or must run a little faster, and you
  72.     don't want to write the silly thing in C, then Perl may be for you.  There
  73.     are also translators to turn your sed and awk scripts into Perl scripts.
  74.  
  75.  
  76. 1.2) Is Perl hard to learn?
  77.     
  78.     No, Perl is easy to learn for two reasons.  
  79.    
  80.     The first reason is that most of Perl is derived from existing tools
  81.     and languages, ones that many people who turn to Perl already have
  82.     some familiarity with.  These include the C programming language, the
  83.     UNIX C library, the UNIX shell, sed, and awk.  If you already know
  84.     these somewhat, Perl should be very easy for you.
  85.  
  86.     The second reason that Perl is easy to learn is that you don't have to
  87.     know every thing there is to know about it in order to get good use
  88.     out of it.  In fact, just a very small subset, mostly borrowed from C,
  89.     the shell, and sed, will be enough for most tasks.  As you feel the
  90.     need or desire to use more sophisticated features (such as C
  91.     structures or networking), you can learn these as you go.  The
  92.     learning curve for Perl is not a steep one, especially if you have
  93.     the headstart of having a background in UNIX.  Rather, its learning
  94.     curve is gentle and gradual, but it *is* admittedly rather long.
  95.  
  96.     If you don't know C or UNIX at all, it'll be a steeper learning curve,
  97.     but what you then learn from Perl will carry over into other areas,
  98.     like using the C library, UNIX system call, regular expressions, and
  99.     associative arrays, just to name a few.  To know Perl is to know 
  100.     UNIX, and vice versa.
  101.  
  102.  
  103. 1.3) Should I program everything in Perl?
  104.  
  105.     Of course not.  You should choose the appropriate tool for the task at
  106.     hand.  While it's true that the answer to the question "Can I do (some
  107.     arbitrary task) in Perl?" is almost always "yes", that doesn't mean
  108.     this is necessarily a good thing to do.  For many people, Perl serves
  109.     as a great replacement for shell programming.  For a few people, it
  110.     also serves as a replacement for most of what they'd do in C.  But
  111.     for some things, Perl just isn't the optimal choice, such as tasks
  112.     requiring very complex data structures.
  113.  
  114.  
  115. 1.4) Where can I get Perl over the Internet?
  116.  
  117.     From any comp.sources.misc archive.   Initial sources  were posted to
  118.     Volume 18, Issues 19-54 at patchlevel 3.  The Patches 4-10 were posted
  119.     to Volume 20, Issues 56-62.  You can use the archie server
  120.     (see the alt.sources FAQ in news.answers) for ways to find these.
  121.  
  122.     These machines, at the very least, definitely have it available for
  123.     anonymous FTP:
  124.  
  125.     ftp.uu.net                137.39.1.2
  126.     ftp.netlabs.com         192.94.48.152
  127.     coombs.anu.edu.au        150.203.76.2
  128.     archive.cis.ohio-state.edu      128.146.8.52
  129.     jpl-devvax.jpl.nasa.gov         128.149.1.143
  130.     prep.ai.mit.edu            18.71.0.38
  131.     ftp.cs.ruu.nl            131.211.80.17  (Europe)
  132.  
  133.     Larry's machine is the netlabs one, and the biggest Perl archive
  134.     is on coombs.
  135.  
  136.  
  137. 1.5) Where can I get Perl via Email?
  138.  
  139.     If you are in Europe, you might using the following site.  (I'm still
  140.     looking for a domestic site.) This information thanks to "Henk P.
  141.     Penning" <henkp@cs.ruu.nl>:  One automated fashion is as follows:
  142.  
  143.     Email: Send a message to 'mail-server@cs.ruu.nl' containing:
  144.      begin
  145.      path your_email_address
  146.      send help
  147.      send PERL/INDEX
  148.      end
  149.     The path-line may be omitted if your message contains a normal From:-line.
  150.     You will receive a help-file and an index of the directory that contains
  151.     the Perl stuff.
  152.  
  153.     If all else fails, mail to Larry usually suffices.
  154.  
  155.  
  156. 1.6) How can I get Perl via UUCP?
  157.  
  158.     You can get it from the site osu-cis; here is the appropriate info,
  159.     thanks to J Greely <jgreely@cis.ohio-state.edu> or <osu-cis!jgreely>.
  160.  
  161.     E-mail contact:
  162.         osu-cis!uucp
  163.     Get these two files first:
  164.         osu-cis!~/GNU.how-to-get.
  165.         osu-cis!~/ls-lR.Z
  166.     Current Perl distribution:
  167.         osu-cis!~/perl/4.0/kits@10/perl.kitXX.Z (XX=01-37)
  168.     How to reach osu-cis via uucp(L.sys/Systems file lines):
  169.     #
  170.     # Direct Trailblazer
  171.     #
  172.     osu-cis Any ACU 19200 1-614-292-5112 in:--in:--in: Uanon
  173.     #
  174.     # Direct V.32 (MNP 4)
  175.     # dead, dead, dead...sigh.
  176.     #
  177.     #osu-cis Any ACU 9600 1-614-292-1153 in:--in:--in: Uanon
  178.     #
  179.     # Micom port selector, at 1200, 2400, or 9600 bps.
  180.     # Replace ##'s below with 12, 24, or 96 (both speed and phone number).
  181.     #
  182.     osu-cis Any ACU ##00 1-614-292-31## "" \r\c Name? osu-cis nected \c GO \d\r\d\r\d\r in:--in:--in:
  183.      Uanon
  184.  
  185.     Modify as appropriate for your site, of course, to deal with your
  186.     local telephone system.  There are no limitations concerning the hours
  187.     of the day you may call.
  188.  
  189.     Another possibility is to use UUNET, although they charge you
  190.     for it.  You have been duly warned.  Here's the advert:
  191.  
  192.            Anonymous Access to UUNET's Source Archives
  193.  
  194.                  1-900-GOT-SRCS
  195.  
  196.      UUNET now provides access to its extensive collection of UNIX
  197.     related sources to non- subscribers.  By  calling  1-900-468-7727
  198.     and  using the login "uucp" with no password, anyone may uucp any
  199.     of UUNET's on line source collection.  Callers will be charged 40
  200.     cents  per  minute.   The charges will appear on their next tele-
  201.     phone bill.
  202.  
  203.      The  file  uunet!/info/help  contains  instructions.   The  file
  204.     uunet!/index//ls-lR.Z contains a complete list of the files available
  205.     and is updated daily.  Files ending in Z need to be uncompressed
  206.     before being used.   The file uunet!~/compress.tar is a tar
  207.     archive containing the C sources for the uncompress program.
  208.  
  209.      This service provides a  cost  effective  way  of  obtaining
  210.     current  releases  of sources without having to maintain accounts
  211.     with UUNET or some other service.  All modems  connected  to  the
  212.     900  number  are  Telebit T2500 modems.  These modems support all
  213.     standard modem speeds including PEP, V.32 (9600), V.22bis (2400),
  214.     Bell  212a  (1200), and Bell 103 (300).  Using PEP or V.32, a 1.5
  215.     megabyte file such as the GNU C compiler would cost $10  in  con-
  216.     nect  charges.   The  entire  55  megabyte X Window system V11 R4
  217.     would cost only $370 in connect time.  These costs are less  than
  218.     the  official  tape  distribution fees and they are available now
  219.     via modem.
  220.  
  221.               UUNET Communications Services
  222.            3110 Fairview Park Drive, Suite 570
  223.              Falls Church, VA 22042
  224.              +1 703 876 5050 (voice)
  225.               +1 703 876 5059 (fax)
  226.                 info@uunet.uu.net
  227.  
  228.  
  229.  
  230. 1.7) Where can I get more information on Perl?
  231.  
  232.     We'll cover five areas here: USENET (where you're probably reading
  233.     this), publications, the reference guide, examples on the Internet,
  234.     and Perl instructional courses.
  235.  
  236.     A.  USENET
  237.  
  238.     You should definitely read the USENET comp.lang.perl newsgroup or
  239.     mailing list for all sorts of discussions regarding the language,
  240.     bugs, features, history, humor, and trivia.  In this respect, it
  241.     functions both as a comp.lang.* style newsgroup and also as a user
  242.     group for the language; in fact, there's a mailing list called
  243.     ``perl-users'' that is bidirectionally gatewayed to the newsgroup; see
  244.     question #38 for details.  Larry Wall is a very frequent poster here,
  245.     as well as many (if not most) of the other seasoned Perl programmers.
  246.     It's the best place for the very latest information on Perl.
  247.  
  248.     B.  PUBLICATIONS
  249.  
  250.     If you've been dismayed by the ~80-page troffed Perl man page (or is
  251.     that man treatise?) you should look to ``the Camel Book'', written by
  252.     Larry and Randal Schwartz <merlyn@ora.com>, published as a Nutshell
  253.     Handbook by O'Reilly & Associates and entitled _Programming Perl_.
  254.     Besides serving as a reference guide for Perl, it also contains
  255.     tutorial material and is a great source of examples and cookbook
  256.     procedures, as well as wit and wisdom, tricks and traps, pranks and
  257.     pitfalls.  The code examples contained therein are available via
  258.     anonymous FTP from ftp.uu.net in
  259.     /published/oreilly/nutshell/perl/perl.tar.Z for your retrieval.
  260.     Corrections and additions to the book can be found in the Perl man
  261.     page right before the BUGS section under the heading ERRATA AND
  262.     ADDENDA.  
  263.  
  264.     If you can't find the book in your local technical bookstore, the book
  265.     may be ordered directly from O'Reilly by calling 1-800-998-9938 if in
  266.     North America and 1-707-829-0515.  The book's ISBN is 0-937175-64-1.
  267.    
  268.     Autographed copies are *NO LONGER* available from TECHbooks --
  269.     you'll have to nab the authors in person if you want one.  Larry
  270.     routinely carries around a camel stamp for just such an occasion.
  271.  
  272.     Reasonably substantiated rumor has it that there will be another Perl
  273.     book out pretty soon, this one aimed more at beginners.  Look for it
  274.     from ORA towards the beginning of 93.
  275.    
  276.     Another ORA book by Randal Schwartz is scheduled for imminent
  277.     release.  It is entitled _Learning Perl_ (``The LLama Book'') and
  278.     covers the basics of Perl in a tutorial fashion.
  279.  
  280.     Larry Wall has published a 3-part article on perl in Unix World
  281.     (August through October of 1991), and Rob Kolstad also had a 3-parter
  282.     in Unix Review (May through July of 1990).  Tom Christiansen also has
  283.     a brief overview article in the trade newsletter Unix Technology
  284.     Advisor from November of 1989.  You might also investigate "The Wisdom
  285.     of Perl" by Gordon Galligher from SunExpert magazine;  April 1991
  286.     Volume 2 Number 4.  The Dec 92 Computer Language magazine also
  287.     contains a cover article on Perl, "Perl: the Programmers Toolbox".
  288.  
  289.     Many other articles on Perl have been recently published.  If you 
  290.     have references, especially on-line copies, please mail them to 
  291.     the FAQ maintainer for inclusion is this notice.
  292.  
  293.     The USENIX LISA (Large Installations Systems Administration) Conference
  294.     have for several years now included many papers of tools written in
  295.     Perl.  Old proceedings of these conferences are available; look in
  296.     your current issue of ";login:" or send mail to office@usenix.org 
  297.     for further information.
  298.  
  299.     C.  INTERNET
  300.  
  301.     For other examples of Perl scripts, look in the Perl source directory in
  302.     the eg subdirectory.  
  303.  
  304.     The site with the biggest repository of Perl scripts right now
  305.     seems to be coombs.anu.edu.au [150.203.76.2].  That directory
  306.     has an INDEX with over 300 lines in it, each describing what
  307.     the script does.  This is maintained by mark@coombs.anu.edu.au .
  308.  
  309.     Note:  European users please use the mirror site on
  310.     src.doc.ic.ac.uk[149.169.2.1 in
  311.         /pub/computing/programming/languages/perl/coombs-scripts
  312.     The link speed would be a lot better for all.  Contact
  313.     L.McLoughlin@doc.ic.ac.uk for more information. It is updated daily.
  314.  
  315.     Another source for examples, currently only for anonymous FTP, is on
  316.     convex.com [130.168.1.1].  This contains, amongst other things,
  317.     a copy of the newsgroup up through Aug 91, a text retrieval database
  318.     for the newsgroup, a rather old and short troff version of Tom Christiansen's
  319.     perl tutorial (this was the version presented at Washington DC USENIX),
  320.     and quite a few of Tom's scripts.  You can look at the INDEX file
  321.     in /pub/perl/INDEX for a list of what's in that directory.   
  322.  
  323.     The Convex and Ohio State archives are mirrored on uunet
  324.     in /languages/perl/scripts-{convex,osu}.
  325.  
  326.     There's also a #Perl channel on IRC (Internet Relay Chat) where
  327.     Tom and Randal have been known to hang out.  That's real-time,
  328.     free Perl support.  What more can you ask? :-)
  329.  
  330.     D.  REFERENCE GUIDE
  331.  
  332.     A nice reference guide by Johan Vromans <jv@mh.nl> is also available;
  333.     It is distributed in LaTeX (source) and PostScript (ready to
  334.     print) forms. Obsolete versions may still be available in TeX and troff
  335.     forms, although these don't print as nicely. The official kit
  336.     includes both LaTeX and PostScript forms, and can be FTP'd from
  337.     ftp.cs.ruu.nl [131.211.80.17], file /pub/DOC/perlref-4.035.tar.Z.
  338.     The reference guide comes with the O'Reilly book in a nice, glossy
  339.     card format.
  340.  
  341.     E.  PERL COURSES
  342.  
  343.     Various technical conferences, including USENIX, LISA, SUG, WCSAS, AUUG,
  344.     FedUnix, and Europen have been sponsoring tutorials of varying lengths
  345.     on Perl at their system administration and general conferences.  You
  346.     might consider attending one of these.  These public classes are
  347.     typically taught by Tom Christiansen <tchrist@usenix.com>.  Both Tom
  348.     and Randal Schwartz <merlyn@ora.com> also teach Perl at customer
  349.     sites.  Classes can run from one day up to a week ranging over a wide
  350.     range of subject matter (most are two or three days), and can include
  351.     lab time if you want; having lab time with exercises is generally of
  352.     great benefit.  Send us mail if your organization is interested in
  353.     having a Perl class taught at your site, or if you'd like to know when
  354.     the next public appearances are.
  355.  
  356.  
  357. 1.8) Can people who aren't on USENET receive comp.lang.perl as a digest?
  358.  
  359.     "Perl-Users" is the mailing list version of the comp.lang.perl
  360.     newsgroup.  If you're not lucky enough to be on USENET you can post to
  361.     comp.lang.perl by sending to one of the following addresses.  Which one
  362.     will work best for you depends on which nets your site is hooked into.
  363.     Ask your local network guru if you're not certain.
  364.  
  365.     Internet: PERL-USERS@VIRGINIA.EDU
  366.               Perl-Users@UVAARPA.VIRGINIA.EDU
  367.  
  368.     BitNet: Perl@Virginia
  369.  
  370.     uucp: ...!uunet!virginia!perl-users
  371.  
  372.     The Perl-Users list is bidirectionally gatewayed with the USENET
  373.     newsgroup comp.lang.perl.  This means that VIRGINIA functions as a
  374.     reflector.  All traffic coming in from the non-USENET side is
  375.     immediately posted to the newsgroup.  Postings from the USENET side are
  376.     periodically digested and mailed out to the Perl-Users mailing list.  A
  377.     digest is created and distributed at least once per day, more often if
  378.     traffic warrants.
  379.  
  380.     All requests to be added to or deleted from this list, problems,
  381.     questions, etc., should be sent to:
  382.  
  383.     Internet: Perl-Users-Request@Virginia.EDU
  384.               Perl-Users-Request@uvaarpa.Virginia.EDU
  385.  
  386.     BitNet: Perl-Req@Virginia
  387.  
  388.     uucp: ...!uunet!virginia!perl-users-request
  389.  
  390.     Coordinator: Marc Rouleau <mer6g@VIRGINIA.EDU>
  391.  
  392. 1.9) Are archives of comp.lang.perl available?
  393.  
  394.     Yes, although they're poorly organized.  You can get them from the
  395.     host ftp.ugcs.caltech.edu (131.215.128.204) to the file
  396.     /pub/comp.lang.perl.tar.Z; this file was last modified on February 15,
  397.     1992, and is 8.9 megabytes long.  Obviously, it's considerably out of
  398.     date.
  399.  
  400.     These are currently stored in news- or MH-style format; there are
  401.     subdirectories named things like "arrays", "programs", "taint", and
  402.     "emacs".  Unfortunately, only the first ~1600 or so messages have been
  403.     so categorized, and we're now up to almost 15000.  Furthermore, even
  404.     this categorization was haphazardly done and contains errors.  
  405.  
  406.     Both Larry and I have maintained archives of the nearly 19,000
  407.     messages the newsgroup has seen since its inception.  I'm currently
  408.     looking for a home for them.  It'll take about 100 megabytes, although
  409.     I'm on a 16k/2k filesystem, and that might be reduced somewhat by one
  410.     with smaller frags.  Or perhaps I'll just get myself a new disk.
  411.  
  412.     They're just stored as regular files the way news does, so it's
  413.     somewhat unmanageable.
  414.  
  415.     A more sophisticated query and retrieval mechanism is desirable.
  416.     Preferably one that allows you to retrieve article using a fast-access
  417.     indices, keyed on at least author, date, subject, thread (as in "trn")
  418.     and probably keywords.  Right now, the MH pick command works for this,
  419.     but it is very slow to select on 18000 articles.
  420.  
  421.     If you're serious about this, your best bet is probably to retrieve
  422.     the compressed tarchive and play with what you get.  Any suggestions
  423.     how to better sort this all out are extremely welcome.
  424.  
  425.     If you have a special request for a query on the old newsgroup
  426.     postings, and make nice noises in my direction, I can run the query
  427.     and send them to you.  Algebraic queries are like "find me anything
  428.     about this and that and the other thing but not this or whozits".  I
  429.     hope to put this in the form of a mailserver.  Donated software would
  430.     be fine. :-)
  431.  
  432.     The fast text-retrieval query system for this I'm currently using is
  433.     Liam Quin's excellent lqtext system, available from ftp.cs.toronto.edu
  434.     in /pub/lq-text* .
  435.  
  436.  
  437. 1.10) Is there a WAIS server for Perl?
  438.  
  439.     Rumor has it that there are WAIS servers out there for comp.lang.perl
  440.     these days, but I haven't used them.  Kevin Gardner <gardner@zinc.csb.yale.edu> 
  441.     offers the following: For WAIS server info, check on the gopher hole
  442.     at mudhoney.micro.umn.edu, port 70.  They've got a rather extensive
  443.     list of WAIS servers at this gopher->WAIS gateway, including a c.l.p.
  444.     archive server.  I don't know how up to date the server actually is,
  445.     as the articles I pulled up from there were all dated from '91.
  446.  
  447.     Bill Middleton <wjm@feenix.metronet.com> offers this:
  448.  
  449.     "I have setup a perl script retrieval service and WaisSearch here at
  450.     feenix.  To check it out, just point your gopher at us, and select the
  451.     appropriate menu option.  The WaisSearch is of the iubio type, which
  452.     means you can do boolean searching.  Thus you might try something
  453.     like:
  454.  
  455.     caller
  456.     ioctl and fcntl
  457.     grep and socket not curses
  458.  
  459.     and other things to see examples of how other folks have done this
  460.     or that.  This service is still under construction, but I'd like to
  461.     get feedback, if you have some time.
  462.  
  463.     There's also a WaisSearch into all the RFC's and some other fairly
  464.     nifty stuff."
  465.  
  466.  
  467. 1.11) Is there a Perl port to machine FOO?
  468.  
  469.     Probably.  Perl already runs on virtually all UNIX machines as well as 
  470.     quite a few non-UNIX ones.  Chances are that if you're running a UNIX
  471.     box, you simply need to run Configure and everything will be taken
  472.     care of for you.   For most UNIX machines, no porting is required.
  473.  
  474.     Perl comes with an elaborate auto-configuration script that allows Perl
  475.     to be painlessly ported to a wide variety of platforms, including many
  476.     non-UNIX ones.  Amiga and MS-DOS binaries are available on
  477.     jpl-devvax.jpl.nasa.gov [128.149.1.143] for anonymous FTP.  Try to bring
  478.     Perl up on your machine, and if you have problems, examine the README
  479.     file carefully, and if all else fails, post to comp.lang.perl with 
  480.     a cross-posting to comp.sys.whatever; probably someone out there has
  481.     run into your problem and will be able to help you.  
  482.  
  483.     In the perl archive on coombs.anu.edu.au, you can consult the file
  484.     /pub/perl/misc/perl.code.sources for information not contained below.
  485.     It may also be more up-to-date as well.
  486.  
  487.     In particular, since they're so often asked about, here's some information 
  488.     for the MacIntosh from Matthias Ulrich Neeracher <neeri@iis.ethz.ch>:
  489.  
  490.         The most recent version of Perl for the Apple Macintosh using the
  491.         MPW C compiler is available in:
  492.  
  493.             nic.switch.ch [130.59.1.40]    software/mac/src/mpw_c
  494.             ftp.eunet.ch  [146.228.10.15]  software/mac/perl
  495.  
  496.         The current version is 4.0.7 (despite the "7", it corresponds to
  497.         patchlevel 36 in the Unix version) and is available in the above
  498.         directories as
  499.  
  500.            Mac_Perl_407_src.sit.bin       Sources
  501.            Mac_Perl_407_tool.sit.bin      MPW Tool
  502.            Mac_Perl_407_appl.sit.bin      Standalone Application (See below)
  503.  
  504.         There is a mailing list for discussing Macintosh Perl which can be
  505.         reached at mpw-perl-request@iis.ee.ethz.ch
  506.  
  507.     Here's more, from Timothy Murphy <tim@maths.tcd.ie >
  508.  
  509.     I ported perl to the Mac, using Think C, a while ago.  I've
  510.     used it quite a lot since without problems.
  511.  
  512.     It is available from ftp.maths.tcd.ie in pub/Mac/perl.hqx .
  513.     The source (as diffs from the standard source) is in the
  514.     subdirectory pub/Mac/perl-4.035 .
  515.  
  516.     A Mac version of patch is also available in pub/Mac/patch.hqx
  517.     with source in pub/Mac/patch-2.0 .  Various other Mac ports of
  518.     GNU programs can be found in the same place.
  519.  
  520.     They all use a small "ThinkCPosix" library containing various
  521.     Unix-like functions, which again can be found in the same
  522.     place.
  523.  
  524.     And here's some VMS information from Rao V. Akella 
  525.     <rao@moose.cccs.umn.edu>:  (this appears to be an old port)
  526.  
  527.     You can pick up Perl for VMS (version 3.0.1.1 patchlevel 4) via
  528.     anonymous ftp from ftp.pitt.edu [130.49.253.1] in the
  529.     software/vms/perl subdirectory (there are two files there:
  530.     perl-pl18.bck and perl-pl4.bck).
  531.  
  532.     There is also a v3.018 on info.rz.uni-ulm.de [134.60.1.125] or
  533.     vms.huji.ac.il [128.139.4.3] in /pub/VMS/misc (information courtesy 
  534.     of Anders Rolff <rolff@scotty.eurokom.ie>).
  535.  
  536.     And here is a recent version for MS-DOS from Budi Rahardjo
  537.     <rahard@ee.UManitoba.CA>, who says:
  538.  
  539.     I am collecting MS-DOS Perl(s) in ftp.ee.umanitoba.ca directory
  540.     /pub/msdos/perl.  Currently I received three versions of Perl v4.019
  541.     and one of 4.010.  (Tommy Thorn <tthorn@daimi.aau.dk> and Len Reed
  542.     <holos0!lbr@gatech.edu>)  
  543.  
  544.     There is now a 4.035 for 386 [DOS], Hitoshi Doi <doi@jrd.december.com>
  545.     port, is available ftp.ee.umanitoba.ca as /pub/msdos/perl/perl386.zoo .
  546.  
  547.     Please contact the porters directly in case of questions about
  548.     these ports.
  549.  
  550.  
  551.     A new version of "bigperl4" has been uploaded to Simtel20 and mirror
  552.     sites:
  553.  
  554.         pd1:<msdos.perl>
  555.         BPERL2X.ZIP        32-bit Perl 4.0pl36 w/VM & Win 3.1 supt. (exe)
  556.         BPERL2S1.ZIP       32-bit Perl 4.0pl36 w/VM & Win supt. (src 1/2)
  557.         BPERL2S2.ZIP       32-bit Perl 4.0pl36 w/VM & Win supt. (src 2/2)
  558.  
  559.      For those of you who don't know what "bigperl4" is, here's the
  560.     short description:
  561.  
  562.     BIGPERL4 is Perl 4.0pl36 that has been compiled using the Watcom C/386
  563.     compiler (a 32-bit, flat-memory model C compiler), which gives this
  564.     version the following features:
  565.  
  566.       * Up to 32MB of memory can be used.
  567.       * Supports virtual memory.
  568.       * Works under Windows 3.1 (however, a second copy of perl cannot
  569.         be spawned under Windows).
  570.       * The perl debugger can be used.
  571.       * Contains GDBM support.
  572.  
  573.     A 386/486 with at least 4MB RAM is required, and a third-party memory
  574.     manager such as QEMM is strongly recommended.
  575.  
  576.     BIGPERL4 also passes those perl tests that do not depend on Unix-isms.
  577.     Full sources are included (including GDBM 1.5).  Freeware and copylefted
  578.     (in the case of GDBM 1.5).
  579.  
  580.     For a version that works on NT, FTP to rhino.microsoft.com
  581.     (131.107.1.121) the port of Perl there purportedly works well and
  582.     includes support for sockets from perl. The source builds out of the
  583.     box and contains some NT specific tests.
  584.  
  585.  
  586. 1.12) How do I get Perl to compile on Solaris?
  587.  
  588.     John Lees <lees@pixel.cps.msu.edu> reports:
  589.  
  590.     I have built perl on Solaris 2.1, 2.2 beta, and 2.2 FCS. Take /usr/ucb
  591.     out of your path and do not use any BSD/UCB libraries.  Only -lsocket,
  592.     -lnsl, and -lm are needed. You can use the hint for Solaris 2.0, but
  593.     the one for 2.1 is wrong. Do not use vfork. Do not use
  594.     -I/usr/ucbinclude.  The result works fine for me, but of couse does
  595.     not support a couple of BSDism's.
  596.  
  597.     Casper H.S. Dik <casper@fwi.uva.nl> reports
  598.  
  599.     You must remove all the references to /usr/ucblib AND
  600.     /usr/ucbinclude.  And ignore the Solaris_2.1 hints. They are wrong.
  601.     The undefining of vfork() probably ahs to do with the confusion it
  602.     gives to the compilers.  If you use cc, you mustn't compile
  603.     util.c/tutil.c  with -O.  I only used the following libs: -lsocket
  604.     -lnsl -lm (there is a problem with -lmalloc)
  605.  
  606.     Michael D'Errico <mike@software.com> reports:
  607.  
  608.     If you are using Solaris 2.x, the signal handling is broken.  If you set
  609.     up a signal handler such as 'ripper' it will be forgotten after the first
  610.     time the signal is caught.  To fix this, you need to recompile Perl.  Just
  611.     add '#define signal(x,y) sigset((x),(y))' after the '#include <signal.h>'
  612.     directive in each file that it occurs, then make it again.
  613.  
  614.  
  615. 1.13) How do I get Perl to compile on a Next?
  616.  
  617.     Bill Eldridge <bill@cognet.ucla.edu> reports:
  618.  
  619.     To get perl to compile on Nexts, you need to combine the
  620.     ansi and bsd headers:
  621.  
  622.         cd /usr/include
  623.         mkdir ansibsd
  624.         cd ansibsd
  625.         ln -s ../ansi
  626.         ln -s ../bsd
  627.  
  628.     Then follow the configuration instructions for Nexts, *replacing*
  629.     all mention of -I/usr/include/ansi or -I/usr/include/bsd with
  630.     -I/usr/include/ansibsd.  
  631.  
  632.     (There might be more elegant solutions, but this is how I
  633.     did it, and it's quick and so far painless).
  634.  
  635.  
  636.  
  637. 1.14) Where can I get (info|inter|ora|sql|syb)perl?
  638.  
  639.     Numerous database-oriented extensions to Perl have been written.
  640.     These amount to using the usub mechanism (see the usub/ subdirectory
  641.     in the distribution tree) to link in a database library, allowing
  642.     embedded calls to Informix, Interbase, Oracle, Ingres, and Sybase.
  643.     There is currently a project underway, organized by Buzz Moschetti
  644.     <buzz@toxicavenger.bear.com>, to create a higher level interface
  645.     (DBperl) that will allow you to write your queries in a
  646.     database-independent fashion.  If you're interested, send 
  647.     mail to <perldb-interest-request@vix.com> and ask to be placed on the
  648.     perldb-interest@vix.com mailing list.
  649.    
  650.     Meanwhile, here are the authors of the various extensions:
  651.  
  652.     What            Target DB       Who
  653.     --------        -----------     ----------------------------------------
  654.     Infoperl        Informix        Kurt Andersen (kurt@hpsdid.sdd.hp.com)
  655.     Interperl       Interbase       Buzz Moschetti (buzz@bear.com)
  656.     Oraperl         Oracle          Kevin Stock (kstock@encore.com)
  657.     Sqlperl         Ingres          Ted Lemon (mellon@ncd.com)
  658.     Sybperl         Sybase          Michael Peppler (mpeppler@itf.ch)
  659.  
  660.     Here's a bit of advertising from Buzz:
  661.  
  662.     Perl is an interpreted language with powerful string, scalar, and array
  663.     processing features developed by Larry Wall that "nicely bridges the
  664.     functionality gap between sh(1) and C."  Since relational DB operations
  665.     are typically textually oriented, perl is particularly well-suited to
  666.     manage the data flows.  The C source code, which is available free of
  667.     charge and runs on many platforms, contains a user-defined function entry
  668.     point that permits a developer to extend the basic function set of the
  669.     language.  The DBperl Group seeks to exploit this capability by creating a
  670.     standardized set of perl function extensions (e.g. db_fetch(), db_attach())
  671.     based the SQL model for manipulating a relational DB, thus providing a
  672.     portable perl interface to a variety of popular RDMS engines including
  673.     Sybase, Oracle, Ingres, Informix, and Interbase.  In theory, any DB engine
  674.     that implements a dynamic SQL interpreter in its HLI can be bolted onto
  675.     the perl front end with predicatable results, although at this time
  676.     backends exist only for the aforementioned five DB engines.
  677.  
  678.     A copy of the latest sybperl (patch level 6) can be found in the DBperl
  679.     archives on ftp.demon.co.uk:/pub/perl/db/sybperl
  680.  
  681.     This archive also contains ports for Ingres, Oracle, Sybase, Informix,
  682.     Unify, Postgres, and Interbase, as well as rdb and shql; it's the home
  683.     of the evolving DBperl API Specification.
  684.  
  685.  
  686. 1.15) Where can I get an SNMP-aware Perl?
  687.  
  688.     snmperl was written by Guy Streeter (streeter@ingr.com), and was
  689.     posted in late February 1993 to comp.protocols.snmp.  The author has
  690.     not made it available for anonymous ftp, archie only reported one site:
  691.  
  692.     Host liasun3.epfl.ch
  693.  
  694.     Location: /pub/net/snmp
  695.            FILE -rw-rw-r--       3407  Aug 11 1992  snmperl.README
  696.            FILE -rw-r--r--      17678  Aug 11 1992  snmperl.tar.Z
  697.  
  698.     Here is the gist of the README:
  699.  
  700.     README  $Revision: 1.1 $
  701.  
  702.     This directory contains the source code to add callable C subroutines
  703.     to perl.  The subroutines implement the SNMP functions "get",
  704.     "getnext", and "set".  They use the freely-distributable SNMP package
  705.     (version 1.1b) from CMU.
  706.  
  707.     USE:
  708.       There are four subroutines defined in the callable interface:
  709.     snmp_get, snmp_next, snmp_set, and snmp_error.
  710.  
  711.       snmp_get and snmp_next implement the GET and GETNEXT operations,
  712.     respectively.  The first two calling arguments are the hostname and
  713.     Community string.  The IP address of the host, as a dotted-quad ASCII
  714.     string, may be used as the hostname.  The rest of the calling
  715.     arguments are a list of variables.  See the CMU package documentation
  716.     for how variables may be specified.
  717.       snmp_set also takes hostname and Community string as arguments.  The
  718.     remaining arguments are a list of triples consisting of variable name,
  719.     variable type, and value.  The variable type is a string, such as
  720.     "INTEGER" or "IpAddress".
  721.       snmp_get, snmp_next, and snmp_set return a list containing
  722.     alternating variables and values.  snmp_get and snmp_next will simply
  723.     omit non-existent variables on return.  snmp_set will fail completely
  724.     if one of the specified variables does not exist (or is read-only).
  725.       snmp_error will return a text string containing some error
  726.     information about the most recent snmp_get|next|set call, if it had an
  727.     error.
  728.  
  729.     OTHER NOTES:
  730.       I didn't find all the places where the CMU library writes to stderr
  731.     or calls exit() directly.
  732.       The changes I made to mib.c involve the formatting of variable values
  733.     for return to the caller.  I took out the descriptive prefix so the
  734.     string contains only the value.
  735.       Enumerated types are returned as a string containing the symbolic
  736.     representation followed in parentheses by the numeric.
  737.  
  738.     DISTRIBUTION and OWNERSHIP
  739.       perl and the CMU SNMP package have their own statements.  Read them.
  740.     The work I've done is free and clear.  Just don't say you wrote it if
  741.     you didn't, and don't say I wrote it if you change it.
  742.  
  743.     Guy Streeter
  744.     streeter@ingr.com
  745.     April 1, 1992 (not a joke!)
  746.  
  747.  
  748. 1.16) There's an a2p and an s2p; why isn't there a p2c (perl-to-C)?
  749.  
  750.     Because the Pascal people would be upset that we stole their name. :-)
  751.  
  752.     The dynamic nature of Perl's do and eval operators (and remember that
  753.     constructs like s/$mac_donald/$mac_gregor/eieio count as an eval) would
  754.     make this very difficult.  To fully support them, you would have to put
  755.     the whole Perl interpreter into each compiled version for those scripts
  756.     using them.  This is what undump does right now, if your machine has it.
  757.     If what you're doing will be faster in C than in Perl, maybe it should
  758.     have been written in C in the first place.  For things that ought to be
  759.     written in Perl, the interpreter will be just about as fast, because the
  760.     pattern matching routines won't work any faster linked into a C program.
  761.     Even in the case of simple Perl programs that don't do any fancy evals, the
  762.     major gain would be in compiling the control flow tests, with the rest
  763.     still being a maze of twisty, turny subroutine calls.  Since these are not
  764.     usually the major bottleneck in the program, there's not as much to be
  765.     gained via compilation as one might think.
  766.  
  767.  
  768. 1.17) Where can I get undump for my machine?
  769.  
  770.     The undump program comes from the TeX distribution.  If you have TeX, then
  771.     you may have a working undump.  If you don't, and you can't get one,
  772.     *AND* you have a GNU emacs working on your machine that can clone itself,
  773.     then you might try taking its unexec() function and compiling Perl with
  774.     -DUNEXEC, which will make Perl call unexec() instead of abort().  You'll
  775.     have to add unexec.o to the objects line in the Makefile.  If you succeed,
  776.     post to comp.lang.perl about your experience so others can benefit from it.
  777.  
  778.     If you have a version of undump that works with Perl, please submit
  779.     its anon-FTP whereabouts to the FAQ maintainer.
  780.  
  781.  
  782. 1.18) Where can I get a perl-mode for emacs?
  783.  
  784.     In the perl4.0 source directory, you'll find a directory called
  785.     "emacs", which contains several files that should help you.
  786.  
  787.  
  788. 1.19) How can I use Perl interactively?
  789.     
  790.     The easiest way to do this is to run Perl under its debugger.
  791.     If you have no program to debug, you can invoke the debugger
  792.     on an `empty' program like this:
  793.  
  794.         perl -de 0
  795.  
  796.     (The more positive amongst us prefer "perl -de 1". :-)
  797.  
  798.     Now you can type in any legal Perl code, and it will be immediately
  799.     evaluated.  You can also examine the symbol table, get stack
  800.     backtraces, check variable Values, and if you want to, set 
  801.     breakpoints and do the other things you can do in a symbolic debugger.
  802.  
  803.  
  804. 1.20) Is there a Perl shell? 
  805.     
  806.    Not really.  Perl is a programming language, not a command
  807.    interpreter.  There is a very simple one called "perlsh"
  808.    included in the Perl source distribution.  It just does this:
  809.  
  810.     $/ = '';        # set paragraph mode
  811.     $SHlinesep = "\n";
  812.     while ($SHcmd = <>) {
  813.         $/ = $SHlinesep;
  814.         eval $SHcmd; print $@ || "\n";
  815.         $SHlinesep = $/; $/ = '';
  816.     }
  817.  
  818.    Not very interesting, eh?  
  819.  
  820.    Daniel Smith <dansmith@autodesk.com> is working on an interactive Perl
  821.    shell called SoftList.  It's currently at version 3.0beta.  SoftList
  822.    3.0 has tcsh-like command line editing, can let you define a file of
  823.    aliases so that you can run chunks of perl or UNIX commands, and so
  824.    on.  You can send mail to him for further information and availability.
  825. -- 
  826.     Tom Christiansen      tchrist@cs.colorado.edu       
  827.             Consultant
  828.     Boulder Colorado  303-444-3212
  829.